Simple_RSI+PA+DCA StrategyThis strategy is a result of a study to understand better the workings of functions, for loops and the use of lines to visualize price levels. The strategy is a complete rewrite of the older RSI+PA+DCA Strategy with the goal to make it dynamic and to simplify the strategy settings to the bare minimum.
In case you are not familiar with the older RSI+PA+DCA Strategy, here is a short explanation of the idea behind the strategy:
The idea behind the strategy based on an RSI strategy of buying low. A position is entered when the RSI and moving average conditions are met. The position is closed when it reaches a specified take profit percentage. As soon as the first the position is opened multiple PA (price average) layers are setup based on a specified percentage of price drop. When the price hits the layer another position with the same position size is is opened. This causes the average cost price (the white line) to decrease. If the price drops more, another position is opened with another price average decrease as result. When the price starts rising again the different positions are separately closed when each reaches the specified take profit. The positions can be re-opened when the price drops again. And so on. When the price rises more and crosses over the average price and reached the specified Stop level (the red line) on top of it, it closes all the positions at once and cancels all orders. From that moment on it waits for another price dip before it opens a new position.
This is the old RSI+PA+DCA Strategy:
The reason to completely rewrite the code for this strategy is to create a more automated, adaptable and dynamic system. The old version is static and because of the linear use of code the amount of DCA levels were fixed to max 6 layers. If you want to add more DCA layers you manually need to change the script and add extra code. The big difference in the new version is that you can specify the amount of DCA layers in the strategy settings. The use of 'for loops' in the code gives the possibility to make this very dynamic and adaptable.
The RSI code is adapted, just like the old version, from the RSI Strategy - Buy The Dips by Coinrule and is used for study purpose. Any other low/dip finding indicator can be used as well
The distance between the DCA layers are calculated exponentially in a function. In the settings you can define the exponential scale to create the distance between the layers. The bigger the scale the bigger the distance. This calculation is not working perfectly yet and needs way more experimentation. Feel free to leave a comment if you have a better idea about this.
The idea behind generating DCA layers with a 'for loop' is inspired by the Backtesting 3commas DCA Bot v2 by rouxam .
The ideas for creating a dynamic position count and for opening and closing different positions separately based on a specified take profit are taken from the Simple_Pyramiding strategy I wrote previously.
This code is a result of a study and not intended for use as a full functioning strategy. To make the code understandable for users that are not so much introduced into pine script (like myself), every step in the code is commented to explain what it does. Hopefully it helps.
Enjoy!
Cerca negli script per "the script"
Rsi strategy for BTC with (Rsi SPX)
I hope this strategy is just an idea and a starting point, I use the correlation of the Sp500 with the Btc, this does not mean that this correlation will exist forever!. I love Trading view and I'm learning to program, I find correlations very interesting and here is a simple strategy.
This is a trading strategy script written in Pine Script language for use in TradingView. Here is a brief overview of the strategy:
The script uses the RSI (Relative Strength Index) technical indicator with a period of 14 on two securities: the S&P 500 (SPX) and the symbol corresponding to the current chart (presumably Bitcoin, based on the variable name "Btc_1h_fixed"). The RSI is plotted on the chart for both securities.
The script then sets up two trading conditions using the RSI values:
A long entry condition: when the RSI for the current symbol crosses above the RSI for the S&P 500, a long trade is opened using the "strategy.entry" function.
A short entry condition: when the RSI for the current symbol crosses below the RSI for the S&P 500, a short trade is opened using the "strategy.entry" function.
The script also includes a take profit input parameter that allows the user to set a percentage profit target for closing the trade. The take profit is set using the "strategy.exit" function.
Overall, the strategy aims to take advantage of divergences in RSI values between the current symbol and the S&P 500 by opening long or short trades accordingly. The take profit parameter allows the user to set a specific profit target for each trade. However, the script does not include any stop loss or risk management features, which should be considered when implementing the strategy in a real trading scenario.
Rocket Grid Algorithm - The Quant ScienceThe Rocket Grid Algorithm is a trading strategy that enables traders to engage in both long and short selling strategies. The script allows traders to backtest their strategies with a date range of their choice, in addition to selecting the desired strategy - either SMA Based Crossunder or SMA Based Crossover.
The script is a combination of trend following and short-term mean reversing strategies. Trend following involves identifying the current market trend and riding it for as long as possible until it changes direction. This type of strategy can be used over a medium- to long-term time horizon, typically several months to a few years.
Short-term mean reversing, on the other hand, involves taking advantage of short-term price movements that deviate from the average price. This type of strategy is usually applied over a much shorter time horizon, such as a few days to a few weeks. By rapidly entering and exiting positions, the strategy seeks to capture small, quick gains in volatile market conditions.
Overall, the script blends the best of both worlds by combining the long-term stability of trend following with the quick gains of short-term mean reversing, allowing traders to potentially benefit from both short-term and long-term market trends.
Traders can configure the start and end dates, months, and years, and choose the length of the data they want to work with. Additionally, they can set the percentage grid and the upper and lower destroyers to manage their trades effectively. The script also calculates the Simple Moving Average of the chosen data length and plots it on the chart.
The trigger for entering a trade is defined as a crossunder or crossover of the close price with the Simple Moving Average. Once the trigger is activated, the script calculates the total percentage of the side and creates a grid range. The grid range is then divided into ten equal parts, with each part representing a unique grid level. The script keeps track of each grid level, and once the close price reaches the grid level, it opens a trade in the specified direction.
The equity management strategy in the script involves a dynamic allocation of equity to each trade. The first order placed uses 10% of the available equity, while each subsequent order uses 1% less of the available equity. This results in the allocation of 9% for the second order, 8% for the third order, and so on, until a maximum of 10 open trades. This approach allows for risk management and can help to limit potential losses.
Overall, the Rocket Grid Algorithm is a flexible and powerful trading strategy that can be customized to meet the specific needs of individual traders. Its user-friendly interface and robust backtesting capabilities make it an excellent tool for traders looking to enhance their trading experience.
BT-Bollinger Bands - Trend FollowingEsse script foi criado para estudo de Backtest.
O script usa as Bandas de Bollinger para indicar o início de uma tendência, a entrada é configurada quando o preço abre abaixo e fecha acima da banda superior ou para venda quando o preço abre acima e fecha abaixo da banda inferior.
Não há um stop fixo e nem alvo fixo a saída se dá quando o preço toca a média da banda.
Você pode usar uma média móvel como filtro combinado com a estratégia.
O Script também pode ser usado com algum serviço de bot como 3commas.io , basta colocar as mensagens de entrada e saída para o bot.
Autor : Credsonb - Nick: M4TR1X_BR
Neste gráfico estou usando as seguintes configurações:
Bandas Bollinger: 7
Desvio Padrão: 1.5
Time Frame: 12hs
Ticker: ETH
This script was created for Backtest study.
script uses Bollinger Bands to indicate the start of a trend, entry is set when price opens below and closes above the upper band or for short when price opens above and closes below the lower band.
There is no fixed stop and no fixed target, the exit occurs when the price touches the average of the band.
You can use a moving average as a filter combined with the strategy.
The Script can also be used with some bot service like 3commas. io , just put the input and output messages to the bot.
Author : Credsonb - Nick: M4TR1X_BR
Short Swing Bearish MACD Cross (By Coinrule)This strategy is oriented towards shorting during downside moves, whilst ensuring the asset is trading in a higher timeframe downtrend, and exiting after further downside.
This script can work well on coins you are planning to hodl for long-term and works especially well whilst using an automated bot that can execute your trades for you. It allows you to hedge your investment by allocating a % of your coins to trade with, whilst not risking your entire holding. This mitigates unrealised losses from hodling as it provides additional cash from the profits made. You can then choose to hodl this cash, or use it to reinvest when the market reaches attractive buying levels. Alternatively, you can use this when trading contracts on futures markets where there is no need to already own the underlying asset prior to shorting it.
ENTRY
This script utilises the MACD indicator accompanied by the Exponential Moving Average (EMA) 450 to enter trades. The MACD is a trend following momentum indicator and provides identification of short-term trend direction. In this variation it utilises the 11-period as the fast and 26-period as the slow length EMAs, with signal smoothing set at 9.
The EMA 450 is used as additional confirmation to prevent the script from shorting when price is above this long-term moving average. Once price is above the EMA 450 the script will not open any shorts - preventing the rule from attempting to short uptrends. Due to this, this strategy is ideal for setting and forgetting.
The script will enter trades based on two conditions:
1) When the MACD signals a bearish cross. This occurs when the EMA 11 crosses below the EMA 26 within the MACD signalling the start of a potential downtrend.
2) Price has closed below the EMA 450. Price closing below this long-term EMA signals that the asset is in a sustained downtrend. Price breaking above this could indicate a bullish strength in which shorting would not be profitable.
EXIT
This script utilises a set take-profit and stop-loss from the entry of the trade. The take profit is set at 8% and the stop loss of 4%, providing a risk reward ratio of 2. This indicates the script will be profitable if it has a win ratio greater than 33%.
Take-Profit Exit: -8% price decrease from entry price.
OR
Stop-Loss Exit: +4% price increase from entry price.
Based on backtesting results across a selection of assets, the 45-minute and 1-hour timeframes are the best for this strategy.
The strategy assumes each order is using 30% of the available coins to make the results more realistic and to simulate you only ran this strategy on 30% of your holdings. A trading fee of 0.1% is also taken into account and is aligned to the base fee applied on Binance.
The backtesting data was recorded from December 1st 2021, just as the market was beginning its downtrend. We therefore recommend analysing the market conditions prior to utilising this strategy as it operates best on weak coins during downtrends and bearish conditions, however the EMA 450 condition should mitigate entries during bullish market conditions.
Customizable Non-Repainting HTF MACD MFI Scalper Bot Strategy v2Customizable Non-Repainting HTF MACD MFI Scalper Bot Strategy v2
This script was originally shared by Wunderbit as a free open source script for the community to work with. This is my second published iteration of this idea.
WHAT THIS SCRIPT DOES:
It is intended for use on an algorithmic bot trading platform but can be used for scalping and manual trading.
This strategy is based on the trend-following momentum indicator . It includes the Money Flow index as an additional point for entry.
This is a new and improved version geared for lower timeframes (15-5 minutes), but can be run on larger ones as well. I am testing it live as my high frequency trader.
HOW IT DOES IT:
It uses a combination of MACD and MFI indicators to create entry signals. Parameters for each indicator have been surfaced for user configurability.
Take profits are now trailing profits, and the stop loss is now fixed. Why? I found that the trailing stop loss with ATR in the previous version yields very good results for back tests but becomes very difficult to deploy live due to transaction fees. As you can see the average trade is a higher profit percentage than the previous version.
HOW IS MY VERSION ORIGINAL:
Now instead of using ATR stop loss, we have a fixed stop loss - counter intuitively to what some may believe this performs better in live trading scenarios since it gives the strategy room to move. I noticed that the ATR trailing stop was stopping out too fast and was eating away balance due to transaction fees.
The take profit on the other hand is now a trailing profit with a customizable deviation. This ensures that you can have a minimum profit you want to take in order to exit.
I have depracated the old ATR trailing stop as it became too confusing to have those as different options. I kept the old version for others that want to experiment with it. The source code still requires some cleanup, but its fully functional.
I added in a way to show RSI values and ATR values with a checkbox so that you can use the new an improved ATR Filter (and grab the right RSI values for the RSI filter). This will help to filter out times of very low volatility where we are unlikely to find a profitable trade. Use the "Show Data" checkbox to see what the values are on the indicator pane, then use those values to gauge what you want to filter out.
Both versions
Delayed Signals : The script has been refactored to use a time frame drop down. The higher time frame can be run on a faster chart (recommended on one minute chart for fastest signal confirmation and relay to algotrading platform.)
Repainting Issues : All indicators have been recoded to use the security function that checks to see if the current calculation is in realtime, if it is, then it uses the previous bar for calculation. If you are still experiencing repainting issues based on intended (or non intended use), please provide a report with screenshot and explanation so I can try to address.
Filtering : I have added to additional filters an ABOVE EMA Filter and a BELOW RSI Filter (both can be turned on and off)
Customizable Long and Close Messages : This allows someone to use the script for algorithmic trading without having to alter code. It also means you can use one indicator for all of your different alterts required for your bots.
HOW TO USE IT:
It is intended to be used in the 5-30 minute time frames, but you might be able to get a good configuration for higher time frames. I welcome feedback from other users on what they have found.
Find a pair with high volatility (example KUCOIN:ETH3LUSDT ) - I have found it works particularly well with 3L and 3S tokens for crypto. although it the limitation is that confrigurations I have found to work typically have low R/R ratio, but very high win rate and profit factor.
Ideally set one minute chart for bots, but you can use other charts for manual trading. The signal will be delayed by one bar but I have found configurations that still test well.
Select a time frame in configuration for your indicator calculations.
Select the strategy config for time frame (resolution). I like to use 5 and 15 minutes for scalping scenarios, but I am interested in hearing back from other community memebers.
Optimize your indicator without filters : customize your settings for MACD and MFI that are profitable with your chart and selected time frame calculation. Try different Take Profits (try about 2-5%) and stop loss (try about 5-8%). See if your back test is profitable and continue to optimize.
Use the Trend, RSI, ATR Filter to further refine your signals for entry. You will get less entries but you can increase your win ratio.
You can use the open and close messages for a platform integration, but I choose to set mine up on the destination platform and let the platform close it. With certain platforms you cannot be sure what your entry point actually was compared to Trading View due to slippage and timing, so I let the platform decide when it is actually profitable.
Limitations: this works rather well for short term, and does some good forward testing but back testing large data sets is a problem when switching from very small time frame to large time frame. For instance, finding a configuration that works on a one minute chart but then changing to a 1 hour chart means you lose some of your intra bar calclulations. There are some new features in pine script which might be able to address, this, but I have not had a chance to work on that issue.
Customizable Non-Repainting HTF MACD MFI Scalper Bot StrategyThis script was originally shared by Wunderbit as a free open source script for the community to work with.
WHAT THIS SCRIPT DOES:
It is intended for use on an algorithmic bot trading platform but can be used for scalping and manual trading.
This strategy is based on the trend-following momentum indicator . It includes the Money Flow index as an additional point for entry.
HOW IT DOES IT:
It uses a combination of MACD and MFI indicators to create entry signals. Parameters for each indicator have been surfaced for user configurability.
Take profits are fixed, but stop loss uses ATR configuration to minimize losses and close profitably.
HOW IS MY VERSION ORIGINAL:
I started trying to deploy this script myself in my algorithmic trading but ran into some issues which I have tried to address in this version.
Delayed Signals : The script has been refactored to use a time frame drop down. The higher time frame can be run on a faster chart (recommended on one minute chart for fastest signal confirmation and relay to algotrading platform.)
Repainting Issues : All indicators have been recoded to use the security function that checks to see if the current calculation is in realtime, if it is, then it uses the previous bar for calculation. If you are still experiencing repainting issues based on intended (or non intended use), please provide a report with screenshot and explanation so I can try to address.
Filtering : I have added to additional filters an ABOVE EMA Filter and a BELOW RSI Filter (both can be turned on and off)
Customizable Long and Close Messages : This allows someone to use the script for algorithmic trading without having to alter code. It also means you can use one indicator for all of your different alterts required for your bots.
HOW TO USE IT:
It is intended to be used in the 5-30 minute time frames, but you might be able to get a good configuration for higher time frames. I welcome feedback from other users on what they have found.
Find a pair with high volatility (example KUCOIN:ETH3LUSDT ) - I have found it works particularly well with 3L and 3S tokens for crypto. although it the limitation is that confrigurations I have found to work typically have low R/R ratio, but very high win rate and profit factor.
Ideally set one minute chart for bots, but you can use other charts for manual trading. The signal will be delayed by one bar but I have found configurations that still test well.
Select a time frame in configuration for your indicator calculations.
Select the strategy config for time frame. I like to use 5 and 15 minutes for scalping scenarios, but I am interested in hearing back from other community memebers.
Optimize your indicator without filters (trendFilter and RSI Filter)
Use the TrendFilter and RSI Filter to further refine your signals for entry. You will get less entries but you can increase your win ratio.
I will add screenshots and possibly a video provided that it passes community standards.
Limitations: this works rather well for short term, and does some good forward testing but back testing large data sets is a problem when switching from very small time frame to large time frame. For instance, finding a configuration that works on a one minute chart but then changing to a 1 hour chart means you lose some of your intra bar calclulations. There are some new features in pine script which might be able to address, this, but I have not had a chance to work on that issue.
Bitlinc MARSI Study AST w/ Take Profit & Stop loss - beta 0.1This script is beta 0.1 - will update as soon as the script is tradable
This script is based on AST on a 10 minute timeframe. You can change the asset and the timeframe for any asset you want to trade, but for it to work correct ALL settings have to be testes in the Strategy section of the TradingView. Each assets and timeframe require a different mixture of settings. This is NOT a one settings fits all trading for all assets on any timeframe. Below are the settings and explanation on how it works.
How it fires a buy / sell:
The script will plot an RSI with upper and lower bands in a separate indicator window. The idea behind this script is to fire a LONG when MA crosses OVER lower band and fire a SHORT when the MA crosses under the lower band. Each order that fires is an OCO (Order Cancels Order) for pyramiding.
Settings:
You have full control of these settings as mentioned above, you must configure every part of this script for each asset and timeframe you trade.
- Length of MA
- Length
- Upper bands of RSI
- Lower bands of RSI
- Take profit percentage
- Stop loss percentage
- Month to start and end the strategy (within 2020)
- Day to start and end the strategy (within 2020)
- Quantity type
- Slippage
- Pyramiding
***Remember that after the signal to enter or exit a trade is fired, the alert will trigger AFTER the close of the candle that caused the tigger to fire
Low Scanner strategy cryptoThis is the last script of the Low scanner series
I have shown in script 1 the best strategy for stocks on 1 hour
script for forex 1 hour (if you look on comments you will find settings which are perfect for low TF (1 min system )
This strategy is the perfect weapen for crypto
no repaint as I shown the scanner do not use security
this system will buy and sell about every 1000 min in the end you will getyour profit which is progressive
set to 1,2,3, and 5 % where each time you take 25% of equaty out
as I shown before the power of the progresive take and my scanner make it best
the scnner serach for low point using my special RSI system with no repaint MTF
every time we get our profit out
the scanner will find us new low to start cycle again
so invite me for coffe if you like this system
thanks to TV that allow donation:)
so this is example of smart strategy that beat the odds
try on major crypto assets (it nice system )
without the script of adolgov
this system was not possible so I would like to thank him very much that he share with us his great script
SMA Cross Entry & Exit StrategyThis is a TradingView Strategy Script meaning you can't execute real trades using your exchange API connected to your TradingView account, it is designed for backtesting only
This is a basic backtesting script for charting the bullish and bearish cross of two user defined simple moving averages, select the cog next to the name of the script ON the price chart in the left hand corner. The script will print to the screen either "Long Entry" or "Short Entry" depending on the direction of the cross. The script using TradingView strategies will subsequently close the opposite of the position that is executed when the bullish or bearish cross occurs. Simply put, if you are short and a bullish cross occurs, your short trade will close and be logged in strategies and the long will fire. You can pyramid the long and short positions to continue entering as long as the trend doesn't flip. You will find this in the script settings. Since this script is for backtesting you can manually set the "backtesting range" for TradingView Strategies and firing the "Long Entry" and "Short Entry". This as well, is in the settings.
Notice: When the SMA cross occurs, you have to wait till the next candle before TradingView Strategy will print the "Long Entry" or "Short Entry" to the screen
TradingView - How To Use Strategies: www.tradingview.com
Strategy VS Buy & HoldSUMMARY:
A strategy wrapper that makes a detailed and visual comparison between a given strategy and the buy & hold returns of the traded security.
DESCRIPTION:
TradingView has a "Buy & Hold Return" metric in the strategy tester that is often enough to assess how our strategy compares to a simple buy hold. However, one may want more information on how and when your strategy beats or is beaten by a simple buy & hold strategy. This script aims to show such detail by providing a more comprehensive metrics and charting the profit/loss of the given strategy against buy & hold.
As seen in the script, it plots/draws 4 elements:
1) Strategy P/L: strategy net profit + strategy open profit
2) Buy & Hold P/L: unrealized return
3) Difference: Strategy P/L - Buy & Hold P/L
4) Strategy vs Buy Hold Stats
> Percent of bars strategy P/L is above Buy & Hold
> Percent of bars strategy P/L is below Buy & Hold
> All Time Average Difference
ADJUSTABLE PARAMETERS:
All labels/panels can be disabled by unchecking these two options:
>bnh_info_panel = input(true, title='Enable Info Panel')
>bnh_indicator_panel = input(true, title='Enable Indicator Panel')
Comparison Date Range can be changed to better isolate specific areas:
>From Year, From Month, From Day
default: 1970 01 01
>To Year, To Month, To Day
default: 2050 12 31
Default settings basically covers all historical data.
HOW TO USE:
The default script contains a simple 50-200 SMA cross strategy, just delete and replace it. Those are everything between these lines:
/////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////STRATEGY SCRIPT START//////////////////////////////////
(STRATEGY SCRIPT GOES HERE)
//////////////////////////////STRATEGY SCRIPT END////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
Removing all plots and drawings from your strategy is advisable.
If you are going to use the Comparison Date Range, apply "bnh_timeCond" to your strategy to align the dates. A sample on how it’s applied can be seen on the Placeholder MA cross strategy.
Note: bnh_timeCond returns a boolean series
TradingView Alerts to MT4 MT5 + dynamic variables NON-REPAINTINGAccidentally, I’m sharing open-source profitable Forex strategy. Accidentally, because this was aimed to be purely educational material. A few days ago TradingView released a very powerful feature of dynamic values from PineScript now being allowed to be passed in Alerts. And thanks to TradingConnector, they could be instantly executed in MT4 or MT5 platform of any broker in the world. So yeah - TradingConnector works with indices and commodities, too.
The logic of this EURUSD 6h strategy is very simple - it is based on Stochastic crossovers with stop-loss set under most recent pivot point. Setting stop-loss with surgical precision is possible exactly thanks to allowance of dynamic values in alerts. TradingConnector has been also upgraded to take advantage of these dynamic values and it now enables executing trades with pre-calculated stop-loss, take-profit, as well as stop and limit orders.
Another fresh feature of TradingConnector, is closing positions only partly - provided that the broker allows it, of course. A position needs to have trade_id specified at entry, referred to in further alerts with partial closing. Detailed spec of alerts syntax and functionalities can be found at TradingConnector website. How to include dynamic variables in alert messages can be seen at the very end of the script in alertcondition() calls.
The strategy also takes commission into consideration.
Slippage is intentionally left at 0. Due to shorter than 1 second delivery time of TradingConnector, slippage is practically non-existing. This can be achieved especially if you’re using VPS server, hosted in the same datacenter as your brokers’ servers. I am using such setup, it is doable. Small slippage and spread is already included in commission value.
This strategy is NON-REPAINTING and uses NO TRAILING-STOP or any other feature known to be faulty in TradingView backtester. Does it make this strategy bulletproof and 100% success-guaranteed? Hell no! Remember the no.1 rule of backtesting - no matter how profitable and good looking a script is, it only tells about the past. There is zero guarantee the same strategy will get similar results in the future.
To turn this script into study so that alerts can be produced, do 2 things:
1. comment “strategy” line at the beginning and uncomment “study” line
2. comment lines 54-59 and uncomment lines 62-65.
Then add script to the chart and configure alerts.
This script was build for educational purposes only.
Certainly this is not financial advice. Anybody using this script or any of its parts in any way, must be aware of high risks connected with trading.
Thanks @LucF and @a.tesla2018 for helping me with code fixes :)
Backtesting on Non-Standard Charts: Caution! - PineCoders FAQMuch confusion exists in the TradingView community about backtesting on non-standard charts. This script tries to shed some light on the subject in the hope that traders make better use of those chart types.
Non-standard charts are:
Heikin Ashi (HA)
Renko
Kagi
Point & Figure
Range
These chart types are called non-standard because they all transform market prices into synthetic views of price action. Some focus on price movement and disregard time. Others like HA use the same division of bars into fixed time intervals but calculate artificial open, high, low and close (OHLC) values.
Non-standard chart types can provide traders with alternative ways of interpreting price action, but they are not designed to test strategies or run automated traded systems where results depend on the ability to enter and exit trades at precise price levels at specific times, whether orders are issued manually or algorithmically. Ironically, the same characteristics that make non-standard chart types interesting from an analytical point of view also make them ill-suited to trade execution. Why? Because of the dislocation that a synthetic view of price action creates between its non-standard chart prices and real market prices at any given point in time. Switching from a non-standard chart price point into the market always entails a translation of time/price dimensions that results in uncertainty—and uncertainty concerning the level or the time at which orders are executed is detrimental to all strategies.
The delta between the chart’s price when an order is issued (which is assumed to be the expected price) and the price at which that order is filled is called slippage . When working from normal chart types, slippage can be caused by one or more of the following conditions:
• Time delay between order submission and execution. During this delay the market may move normally or be subject to large orders from other traders that will cause large moves of the bid/ask levels.
• Lack of bids for a market sell or lack of asks for a market buy at the current price level.
• Spread taken by middlemen in the order execution process.
• Any other event that changes the expected fill price.
When a market order is submitted, matching engines attempt to fill at the best possible price at the exchange. TradingView strategies usually fill market orders at the opening price of the next candle. A non-standard chart type can produce misleading results because the open of the next candle may or may not correspond to the real market price at that time. This creates artificial and often beneficial slippage that would not exist on standard charts.
Consider an HA chart. The open for each candle is the average of the previous HA bar’s open and close prices. The open of the HA candle is a synthetic value, but the real market open at the time the new HA candle begins on the chart is the unrelated, regular open at the chart interval. The HA open will often be lower on long entries and higher on short entries, resulting in unrealistically advantageous fills.
Another example is a Renko chart. A Renko chart is a type of chart that only measures price movement. The purpose of a Renko chart is to cluster price action into regular intervals, which consequently removes the time element. Because Trading View does not provide tick data as a price source, it relies on chart interval close values to construct Renko bricks. As a consequence, a new brick is constructed only when the interval close penetrates one or more brick thresholds. When a new brick starts on the chart, it is because the previous interval’s close was above or below the next brick threshold. The open price of the next brick will likely not represent the current price at the time this new brick begins, so correctly simulating an order is impossible.
Some traders have argued with us that backtesting and trading off HA charts and other non-standard charts is useful, and so we have written this script to show traders what happens when order fills from backtesting on non-standard charts are compared to real-world fills at market prices.
Let’s review how TV backtesting works. TV backtesting uses a broker emulator to execute orders. When an order is executed by the broker emulator on historical bars, the price used for the fill is either the close of the order’s submission bar or, more often, the open of the next. The broker emulator only has access to the chart’s prices, and so it uses those prices to fill orders. When backtesting is run on a non-standard chart type, orders are filled at non-standard prices, and so backtesting results are non-standard—i.e., as unrealistic as the prices appearing on non-standard charts. This is not a bug; where else is the broker emulator going to fetch prices than from the chart?
This script is a strategy that you can run on either standard or non-standard chart types. It is meant to help traders understand the differences between backtests run on both types of charts. For every backtest, a label at the end of the chart shows two global net profit results for the strategy:
• The net profits (in currency) calculated by TV backtesting with orders filled at the chart’s prices.
• The net profits (in currency) calculated from the same orders, but filled at market prices (fetched through security() calls from the underlying real market prices) instead of the chart’s prices.
If you run the script on a non-standard chart, the top result in the label will be the result you would normally get from the TV backtesting results window. The bottom result will show you a more realistic result because it is calculated from real market fills.
If you run the script on a normal chart type (bars, candles, hollow candles, line, area or baseline) you will see the same result for both net profit numbers since both are run on the same real market prices. You will sometimes see slight discrepancies due to occasional differences between chart prices and the corresponding information fetched through security() calls.
Features
• Results shown in the Data Window (third icon from the top right of your chart) are:
— Cumulative results
— For each order execution bar on the chart, the chart and market previous and current fills, and the trade results calculated from both chart and market fills.
• You can choose between 2 different strategies, both elementary.
• You can use HA prices for the calculations determining entry/exit conditions. You can use this to see how a strategy calculated from HA values can run on a normal chart. You will notice that such strategies will not produce the same results as the real market results generated from HA charts. This is due to the different environment backtesting is running on where for example, position sizes for entries on the same bar will be calculated differently because HA and standard chart close prices differ.
• You can choose repainting/non-repainting signals.
• You can show MAs, entry/exit markers and market fill levels.
• You can show candles built from the underlying market prices.
• You can color the background for occurrences where an order is filled at a different real market price than the chart’s price.
Notes
• On some non-standard chart types you will not obtain any results. This is sometimes due to how certain types of non-standard types work, and sometimes because the script will not emit orders if no underlying market information is detected.
• The script illustrates how those who want to use HA values to calculate conditions can do so from a standard chart. They will then be getting orders emitted on HA conditions but filled at more realistic prices because their strategy can run on a standard chart.
• On some non-standard chart types you will see market results surpass chart results. While this may seem interesting, our way of looking at it is that it points to how unreliable non-standard chart backtesting is, and why it should be avoided.
• In order not to extend an already long description, we do not discuss the particulars of executing orders on the realtime bar when using non-standard charts. Unless you understand the minute details of what’s going on in the realtime bar on a particular non-standard chart type, we recommend staying away from this.
• Some traders ask us: Why does TradingView allow backtesting on non-standard chart types if it produces unrealistic results? That’s somewhat like asking a hammer manufacturer why it makes hammers if hammers can hurt you. We believe it’s a trader’s responsibility to understand the tools he is using.
Takeaways
• Non-standard charts are not bad per se, but they can be badly used.
• TV backtesting on non-standard charts is not broken and doesn’t require fixing. Traders asking for a fix are in dire need of learning more about trading. We recommend they stop trading until they understand why.
• Stay away from—even better, report—any vendor presenting you with strategies running on non-standard charts and implying they are showing reliable results.
• If you don’t understand everything we discussed, don’t use non-standard charts at all.
• Study carefully how non-standard charts are built and the inevitable compromises used in calculating them so you can understand their limitations.
Thanks to @allanster and @mortdiggiddy for their help in editing this description.
Look first. Then leap.
Advanced Breakout System v2.0Advanced Breakout System v2.0
Developed by: Mohammed Bedaiwi
This script hunts for high-probability breakouts by combining price consolidation zones, volume spikes vs. average volume, smart money flow (OBV), and a Momentum Override for explosive moves that skip consolidation. Additionally, it automatically identifies and plots Support and Resistance levels with price labels to help you visualize market structure.
The system follows a "Watch & Confirm" logic: it first prints a WATCH setup, then a BUY only if price confirms strength.
💡 JUSTIFICATION OF CONCEPTS (MASHUP & ORIGINALITY)
This script is an original mashup combining several analytical concepts to address common breakout failures:
Volatility Compression Engine: Uses built-in functions like ta.highest() and ta.lowest() to mathematically define the setup phase where price volatility is compressed below a user-defined threshold.
Volume Spike Confirmation: The breakout must be confirmed by a volume increase greater than a moving average of volume, signaling strong market interest.
Smart Volume Filter (OBV): This is the key component. By checking if ta.obv is above its own Moving Average, we confirm that accumulation has been occurring during the consolidation period, suggesting institutional positioning before the price break.
Multi-Exit Risk System: Employs dynamic exits (EMA cross, volume dump, bearish pattern) instead of static stop-losses to manage risk adaptively based on real-time market action.
Market Structure Visualization: The script also includes a Support & Resistance engine to plot key swing pivots and price labels for visual context.
✅ STRATEGY RESULTS & POLICY COMPLIANCE
To ensure non-misleading and transparent backtesting results, this strategy is published with the following fully compliant properties:
Dataset Compliance: The backtest is performed on the CMTL Daily (1D) chart across a long history, generating 201 total trades. This significantly exceeds the minimum requirement of 100 trades, providing a robust test dataset.
Risk Control: The strategy uses a conservative order size set to 2% of equity (default_qty_value=2), strictly adhering to the sustainable risk recommendation of 5-10% of equity per trade.
Transaction Costs: Realistic trading conditions are modeled using 0.07% commission and 3 ticks slippage to prevent the overestimation of profitability.
⚙️ VISUAL GUIDE & SIGNAL LOGIC
Key Color Legend (Visual Guide):
WATCH – Setup (Yellow Arrow Down): Potential breakout setup detected.
BUY – Confirmation (Green Arrow Up): Confirmed breakout, triggered when price trades above the high of the WATCH candle.
SELL – Break (Orange Arrow): Short-term trend weakness, triggered when price closes below the Fast EMA (9).
SELL – Dump (Dark Red Arrow): Distribution / volume dump, triggered by a bearish candle with abnormally high volume.
SELL – Pattern (Purple Arrow): Bearish price-action pattern (such as a bearish engulfing).
Support & Resistance Lines (Red/Green): Small horizontal lines plotted at key swing points with exact price labels.
⌨️ INPUTS (DEFAULT SETTINGS)
Entry settings: Consolidation Lookback (default 20) = bars used to detect consolidation. Consolidation Range % (default 12%) = max allowed range size. Volume Spike Multiplier (default 1.2) = factor above average volume to count as a spike. Force Signal on Big Moves (default ON) = forces a WATCH signal on high-momentum moves.
Exit settings: Enable Fast Exit (EMA 9) toggles the SELL – Break signal. Dump Volume Multiplier defines what counts as “dump” volume.
Support & Resistance: Adjustable Pivot Left/Right bars control the sensitivity of the support and resistance lines.
⚠️ Disclaimer Trading involves significant risk of loss. This script is for educational and informational purposes only and is not financial advice or a recommendation to buy or sell any asset. BUY and SELL signals are rule-based and derived from historical behavior and do not guarantee future performance. Always use your own analysis and risk management. This is an open-source strategy; users are encouraged to test it across different symbols and timeframes.
12M Return Strategy This strategy is based on the original Dual Momentum concept presented by Gary Antonacci in his book “Dual Momentum Investing.”
It implements the absolute momentum portion of the framework using a 12-month rate of change, combined with a moving-average filter for trend confirmation.
The script automatically adapts the lookback period depending on chart timeframe, ensuring the return calculation always represents approximately one year, whether you are on daily, weekly, or monthly charts.
How the Strategy Works
1. 12-Month Return Calculation
The core signal is the 12-month price return, computed as:
(Current Price ÷ Price from ~1 year ago) − 1
This return:
Plots as a histogram
Turns green when positive
Turns red when negative
The lookback adjusts automatically:
1D chart → 252 bars
1W chart → 52 bars
1M chart → 12 bars
Other timeframes → estimated to approximate 1 calendar year
2. Trend Filter (Moving Average of Return)
To smooth volatility and avoid noise, the strategy applies a moving average to the 12M return:
Default length: 12 periods
Plotted as a white line on the indicator panel
This becomes the benchmark used for crossovers.
3. Trade Signals (Long / Short / Cash)
Trades are generated using a simple crossover mechanism:
Bullish Signal (Go Long)
When:
12M Return crosses ABOVE its MA
Action:
Close short (if any)
Enter long
Bearish Signal (Go Short or Go Flat)
When:
12M Return crosses BELOW its MA
Action:
If shorting is enabled → Enter short
If shorting is disabled → Exit position and go to cash
Shorting can be enabled or disabled with a single input switch.
4. Position Sizing
The strategy uses:
Percent of Equity position sizing
You can specify the percentage of your portfolio to allocate (default 100%).
No leverage is required, but the strategy supports it if your account settings allow.
5. Visual Signals
To improve clarity, the strategy marks signals directly on the indicator panel:
Green Up Arrows: return > MA
Red Down Arrows: return < MA
A status label shows the current mode:
LONG
SHORT
CASH
6. Backtest-Ready
This script is built as a full TradingView strategy, not just an indicator.
This means you can:
Run complete backtests
View performance metrics
Compare long-only vs long/short behavior
Adjust inputs to tune the system
It provides a clean, rule-driven interpretation of the classic absolute momentum approach.
Inspired By: Gary Antonacci – Dual Momentum Investing
This script reflects the absolute momentum side of Antonacci’s original research:
Uses 12-month momentum (the most statistically validated lookback)
Applies a trend-following overlay to control downside risk
Recreates the classic signal structure used in academic studies
It is a simplified, transparent version intended for practical use and educational clarity.
Disclaimer
This script is for educational and research purposes only.
Historical performance does not guarantee future results.
Always use proper risk management.
Volume Momentum Strategy [MA/VWAP Cross]Deconstructing the Volume Momentum Strategy: An Analysis of MA-VWAP Cross Mechanics
Introduction
The "Volume Momentum Strategy " is a technical trading algorithm programmed in Pine Script v6 for the TradingView platform. At its core, the strategy is a trend-following system that utilizes the interaction between a specific Moving Average (MA) and the Volume Weighted Average Price (VWAP) to generate trade signals. While the primary execution logic relies on price crossovers, the strategy incorporates a sophisticated secondary layer of analysis using the Commodity Channel Index (CCI) and Stochastic Oscillator. Uniquely, these secondary indicators are applied to volume data rather than price, serving as a gauge for market participation and momentum intensity.
The Core Engine: MA and VWAP Crossover
The primary engine driving the strategy's buy and sell decisions is the crossover relationship between a user-defined Moving Average and the VWAP.
1. The Anchor (VWAP): The strategy calculates the Volume Weighted Average Price based on the HLC3 (High, Low, Close divided by 3) source. VWAP serves as the dynamic benchmark for "fair value" throughout the trading session.
2. The Trigger (Moving Average): The script allows for flexibility in defining the "fast" line, offering options such as Simple (SMA), Exponential (EMA), or Hull Moving Averages.
3. The Signal:
o A Long (Buy) signal is generated when the chosen MA crosses over the VWAP. This suggests that short-term price momentum is exceeding the average volume-weighted price of the session, indicating bullish sentiment.
o A Short (Sell) signal is generated when the MA crosses under the VWAP, indicating bearish pressure where price is being pushed below the session's volume-weighted average.
The Role of CCI and Stochastic: Analyzing Volume Momentum
The prompt specifically inquires about how the CCI and Stochastic indicators fit into this process. In standard technical analysis, these oscillators are used to identify overbought or oversold price conditions. However, this strategy repurposes them to analyze Volume Momentum.
1. The Calculation
Instead of using close prices as the input source, the script passes volume data into both indicator functions:
• Volume CCI: Calculated as ta.cci(volume, cciLength). This measures the deviation of current volume from its statistical average.
• Volume Stochastic: Calculated as ta.stoch(volume, volume, volume, stochLength). This gauges the current volume relative to its recent range.
2. The "Volume Spike" Condition
The strategy combines these two indicators to define a specific market condition labeled isVolumeSpike. A volume spike is confirmed only when both conditions are met simultaneously:
• The Volume CCI must be greater than a defined threshold (default: 100).
• The Volume Stochastic must be greater than a defined threshold (default: 80).
3. Integration into the Process
It is critical to note how this script currently applies this "Volume Spike" logic:
• Visual Confirmation: In the current version of the code, the isVolumeSpike boolean is used strictly for visual feedback. When a spike is detected, the script paints the specific price bar yellow and plots a small triangle marker below the bar.
• Strategic Implication: While the code calculates these metrics, the variables long_condition and short_condition currently rely solely on the MA/VWAP crossover. The developer has left the volume logic as a visual overlay, noting in the comments that it serves as a "visual/alert" or a potential filter.
• Potential Alpha: Conceptually, this setup implies that a trader should look for the MA/VWAP crossover to occur coincidentally with—or shortly after—a "Volume Spike" (yellow bar). This would confirm that the price move is backed by significant institutional participation (volume) rather than just retail noise.
Risk Management and Time Constraints
The strategy wraps these technical signals in a robust risk management framework. It includes hard-coded time windows (start/stop trading times) and a "Close All" function to prevent holding positions overnight. Furthermore, it employs both percentage-based and dollar-based Stop Loss and Take Profit mechanisms, ensuring that every entry—whether generated by a high-momentum crossover or a standard trend move—has a predefined exit plan.
Conclusion
The "Volume Momentum Strategy" is a hybrid system. It executes trades based on the reliable trend signal of MA crossing VWAP but informs the trader with advanced volume analytics. By processing volume through the CCI and Stochastic calculations, it provides a "heads-up" display regarding the intensity of market participation, allowing the trader to distinguish between low-volume drifts and high-volume breakout moves.
Simple Grid Trading v1.0 [PUCHON]Simple Grid Trading v1.0
Overview
This is a Long-Only Grid Trading Strategy developed in Pine Script v6 for TradingView. It is designed to profit from market volatility by placing a series of Buy Limit orders at predefined price levels. As the price drops, the strategy accumulates positions. As the price rises, it sells these positions at a profit.
Features
Grid Types : Supports both Arithmetic (equal price spacing) and Geometric (equal percentage spacing) grids.
Flexible Order Management : Uses strategy.order for precise control and prevents duplicate orders at the same level.
Performance Dashboard : A real-time table displaying key metrics like Capital, Cashflow, and Drawdown.
Advanced Metrics : Includes Max Drawdown (MaxDD) , Avg Monthly Return , and CAGR calculations.
Customizable : Fully adjustable price range, grid lines, and lot size.
Dashboard Metrics
The dashboard (default: Bottom Right) provides a quick snapshot of the strategy's performance:
Initial Capital : The starting capital defined in the strategy settings.
Lot Size : The fixed quantity of assets purchased per grid level.
Avg. Profit per Grid : The average realized profit for each closed trade.
Cashflow : The total realized net profit (closed trades only).
MaxDD : Maximum Drawdown . The largest percentage drop in equity (realized + unrealized) from a peak.
Avg Monthly Return : The average percentage return generated per month.
CAGR : Compound Annual Growth Rate . The mean annual growth rate of the investment over the specified time period.
Strategy Settings (Inputs)
Grid Settings
Upper Price : The highest price level for the grid.
Lower Price : The lowest price level for the grid.
Number of Grid Lines : The total number of levels (lines) in the grid.
Grid Type :
Arithmetic: Distance between lines is fixed in price terms (e.g., $10, $20, $30).
Geometric: Distance between lines is fixed in percentage terms (e.g., 1%, 2%, 3%).
Lot Size : The fixed amount of the asset to buy at each level.
Dashboard Settings
Show Dashboard : Toggle to hide/show the performance table.
Position : Choose where the dashboard appears on the chart (e.g., Bottom Right, Top Left).
How It Works
Initialization : On the first bar, the script calculates the price levels based on your Upper/Lower price and Grid Type.
Entry Logic :
The strategy places Buy Limit orders at every grid level below the current price.
It checks if a position already exists at a specific level to avoid "stacking" multiple orders on the same line.
Exit Logic :
For every Buy order, a corresponding Sell Limit (Take Profit) order is placed at the next higher grid level.
MaxDD Calculation :
The script continuously tracks the highest equity peak.
It calculates the drawdown on every bar (including intra-bar movements) to ensure accuracy.
Displayed as a percentage (e.g., 5.25%).
Disclaimer
This script is for educational and backtesting purposes only. Grid trading involves significant risk, especially in strong trending markets where the price may move outside your grid range. Always use proper risk management.
NEXT GEN INSPIRED BY OLIVER VELEZDYOR NFA
1. Initial Setup & Application
Load the Strategy to your desired chart (e.g., EURUSD M5, as suggested by the script's backtest).
Overlay: Ensure the script is set to overlay=true (which it is) so the signals and Moving Averages plot directly on the price chart.
Equity Management: Review the initial strategy settings for capital and position sizing:
Initial Capital: Defaults to 10,000.
Default Qty Type: Set to strategy.percent_of_equity (22%), meaning 22% of your available equity is used per trade. Adjust this percentage based on your personal risk tolerance.
2. Reviewing Key Indicator Inputs
The script uses default values that are optimized, but you can adjust them in the settings panel:
Fast EMA: Defaults to 9 (e.g., a 9-period Exponential Moving Average).
Slow EMA: Defaults to 21 (e.g., a 21-period Exponential Moving Average). These EMAs define the short-term trend.
ATR: Defaults to 14 (Average True Range). Used to dynamically calculate volatility for SL/TP distances.
Final R:R: Defaults to 4.5 (minimum R:R required for a signal). This is the core of the strategy's high reward goal.
3. Interpreting Entry Signals
A trade signal is generated only when all conditions—EMA trend, "Elephant Logic" momentum, and non-ranging market—are met.
Long Signal: Appears as a green triangle (▲) below the bar, labeled "COMBO".
Short Signal: Appears as a red triangle (▼) above the bar, labeled "COMBO".
Live Plan: Upon signal, a detailed label is immediately plotted on the chart showing the FULL BATTLE PLAN:
SL: Calculated Stop Loss price.
TP: Calculated Take Profit price (based on the Final R:R).
Risk/Reward Pips: The calculated pips for the trade's risk and reward.
R:R = 1:4.5: The exact Risk-to-Reward ratio.
4. Understanding Market Conditions & Visuals
The script provides visuals to help you understand the current market state:
Trend EMAs: The 9 EMA (green) and 21 EMA (purple/magenta) are plotted to show the underlying trend.
Long trades only fire when Price > 9 EMA > 21 EMA.
Short trades only fire when Price < 9 EMA < 21 EMA.
Ranging Market (Rejection): Bars turn a light gray/silver when the proprietary "Reject Ranging" logic is active, indicating a low-volatility period. No new trades will be taken during these bars.
Momentum Bar: Bars turn a gold/yellow color when the "Elephant Logic" (high-momentum, large-body candles over 2-3 periods) is detected, highlighting powerful price movement.
5. Execution and Exit Logic
The strategy handles entry, scaling, and exit automatically:
Entry: A market order is placed (strategy.entry) immediately upon the bar where the longSetup or shortSetup condition is met.
Scaling Out (+1R): If the trade moves favorably by an amount equal to the initial risk (1R), the script closes a portion of the position (strategy.close with comment "+1R"). This partial exit locks in profit equivalent to the initial risk.
Re-entry (Pyramiding): After the +1R exit, the strategy attempts a re-entry (LONG RE/SHORT RE diamond plot) if the price meets certain criteria near the 9 EMA, trying to capitalize on further trend continuation.
Final Exits:
Take Profit: A limit order is set at the calculated TP level (stopDist * minRR).
Stop Loss: A stop order is set at the calculated SL level (stopDist * 1.3), slightly wider than the initial SL distance, likely to account for spread/slippage, ensuring the maximum loss is defined.
Trailing Stop: A trailing stop is applied to the re-entry positions (LONG RE/SHORT RE) to protect profits as the market moves further in the direction of the trade.
Trend Pullback System```{"variant":"standard","id":"36492","title":"Trend Pullback System Description"}
Trend Pullback System is a price-action trend continuation model that looks to enter on pullbacks, not breakouts. It’s designed to find high-quality long/short entries inside an already established trend, place the stop at meaningful structure, trail that stop as structure evolves, and warn you when the trade thesis is no longer valid.
Developed by: Mohammed Bedaiwi
---------------------------------
HOW IT WORKS
---------------------------------
1. Trend Detection
• The strategy defines overall bias using moving averages.
• Bullish environment (“uptrend”): price above the slower MA, fast MA above slow MA, and the slow MA is sloping up.
• Bearish environment (“downtrend”): price below the slower MA, fast MA below slow MA, and the slow MA is sloping down.
This prevents trading against chop and focuses on continuation moves in the dominant direction.
2. Pullback + Re-entry Logic
• The script waits for price to pull back into structure (support in an uptrend, resistance in a downtrend), and then push back in the direction of the main trend.
• That “push back” is the setup trigger. We don’t chase the first breakout candle — we buy/sell the retest + resume.
3. Structural Levels (“Diamonds”)
• Green diamond (below bar): bullish pivot low formed while the trend is bullish. This marks defended support.
- Use it as a re-entry zone for longs.
- Use it to trail a stop higher when you’re already long.
- Shorts can take profit here because buyers stepped in.
• Red diamond (above bar): bearish pivot high formed while the trend is bearish. This marks defended resistance.
- Use it as a re-entry zone for shorts.
- Use it to trail a stop lower when you’re already short.
- Longs can take profit here because sellers stepped in.
4. Entry Signals
• BUY arrow (green triangle up under the candle, text like “BUY” / “BUY Zone”):
- LongSetup is true.
- Trend is bullish or turning bullish.
- Price just bounced off recent defended support (green diamond) and reclaimed short-term momentum.
Meaning: enter long here or cover/exit shorts.
• SELL arrow (red triangle down above the candle):
- ShortSetup is true.
- Trend is bearish or turning bearish.
- Price just rolled down from defended resistance (red diamond) and lost short-term momentum.
Meaning: enter short here or take profit on longs.
These are the primary trade entries. They are meant to be actionable.
5. Weak Setups (“W” in yellow)
• Yellow triangle with “W”:
- A possible long/short idea is trying to form, BUT the higher-timeframe confirmation is not fully there yet.
- Think of it as early pressure / early caution, not a full signal.
• You usually watch these areas rather than jumping in immediately.
6. Exit Warning (orange “EXIT” label above a bar)
• The strategy will raise an EXIT marker when you’re in a trade and the *opposite* side just produced a confirmed setup.
- You’re short and a valid longSetup appears → EXIT.
- You’re long and a valid shortSetup appears → EXIT.
• This is basically: “Close or reduce — the other side just took control.”
• It’s not just a trailing stop hit; it’s a regime flip warning.
7. Stop, Target, and Trailing
• On every new setup, the script records:
- Initial stop: recent swing beyond the defended level (below support for longs, above resistance for shorts).
- Initial target: recent opposing swing.
• While you’re in position, if new confirming diamonds print in your favor, the stop can trail toward the new defended level.
• This creates structure-based risk management (not just fixed % or ATR).
8. Reference Levels
• The strategy also plots prior higher-timeframe closes (last week’s close, last month’s close, last year’s close). These can behave as magnets or stall points.
• They’re helpful for take-profit timing and for reading “are we trading above or below last month’s close?”
9. Momentum Panel (hidden by default)
• Internally, the script calculates an SMI-style momentum oscillator with overbought/oversold zones.
• This is optional visual confirmation and does not drive the core entry/exit logic.
---------------------------------
WHAT A TRADE LOOKS LIKE IN REAL PRICE ACTION
---------------------------------
Early warning
• Yellow W + red diamonds + red down arrows = “This is getting weak. Short setups are here.”
• You may also see something like “My Short Entry Id.” That’s where the short side actually engages.
Bearish follow-through, then exhaustion
• Price bleeds down.
• Then the orange EXIT appears.
→ Translation: “If you’re still short, close it. Buyers are stepping in hard. Risk of reversal is now high.”
Regime flip
• Right after EXIT, multiple green BUY arrows fire together (“BUY”, “BUYZone”).
• That’s the true long trigger.
→ This is where you either enter long or flip from short to long.
Expansion leg
• After that flip, price rips up for multiple candles / days / weeks.
• While it runs:
- Green diamonds appear under pullbacks → “dip buy zones / trail stop up here.”
- More BUY arrows show on minor pullbacks → continuation long / scale adds.
Distribution / topping
• Later, you start seeing new yellow W triangles again near local highs. That’s your “careful, this might be topping” warning.
• You finally get a hard red candle, and green diamonds stop stacking.
→ That’s where you tighten risk, scale out, or assume the move is mature.
In plain terms, the model is doing the following for you:
• It puts you short during weakness.
• It tells you when to get OUT of the short.
• It flips you long right as control changes.
• It gives you a structure-based trail the whole way up.
• It warns you again when momentum at the top starts cracking.
That is exactly how the logic was designed.
---------------------------------
QUICK INTERPRETATION CHEAT SHEET
---------------------------------
🔻 Red triangle + “Short Entry” near a red diamond
→ Short entry zone (or take profit on a long).
🟥 Red diamond above bar
→ Sellers defended here. Treat it as resistance. Good place to trail short stops just above that level. Avoid chasing longs straight into it.
🟨 Yellow W
→ Attention only. Early pressure / possible turn. Not fully confirmed.
🟧 EXIT (orange label)
→ The opposite side just printed a real setup. Close the old idea (cover shorts if you’re short, exit longs if you’re long). Thesis invalid.
🟩 Burst of green BUY triangles after EXIT
→ Long entry. Also a “cover shorts now” alert. This is the core money entry in bullish reversals.
💎 Green diamond below bar
→ Bulls defended that level. Good for trailing your long stop up, and good “buy the dip in trend” locations.
📈 Blue / teal MAs stacked and rising
→ Confirmed bullish structure. You’re in trend continuation mode, so dips are opportunities, not automatic exits.
---------------------------------
COLOR / SHAPE KEY
---------------------------------
• Green triangle up (“BUY”, “BUY Zone”):
Long entry / cover shorts / continuation long trigger.
• Red triangle down:
Short entry / take profit on longs / continuation short trigger.
• Orange “EXIT” label:
Opposite side just fired a real setup. The previous trade thesis is now invalid.
• Green diamond below price:
Bullish defended support in an uptrend. Use for dip buys, trailing stops on longs, and objective cover zones for shorts.
• Red diamond above price:
Bearish defended resistance in a downtrend. Use for re-entry shorts, trailing stops on shorts, and objective scale-out zones for longs.
• Yellow “W”:
Weak / early potential setup. Watch it, don’t blindly trust it.
• Moving average bands (fast MA, slow MA, Hull MA):
When stacked and rising, bullish control. When stacked and falling, bearish control.
---------------------------------
INTENT
---------------------------------
This system is built to:
• Trade with momentum, not against it.
• Enter on pullbacks into proven structure, not chase stretched breakouts.
• Automate stop/target logic around actual defended swing levels.
• Warn you when the other side takes over so you don’t give back gains.
Typical usage:
1. In an uptrend, wait for price to pull back, print a green diamond (support proved), then take the first BUY arrow that fires.
2. In a downtrend, wait for a bounce into resistance, print a red diamond (sellers proved), then take the first SELL arrow that fires.
3. Respect EXIT when it appears — that’s the model saying “this trade is done.”
---------------------------------
DISCLAIMER
---------------------------------
This script is for educational and research purposes only. It is not financial advice, investment advice, or a recommendation to buy or sell any security, cryptoasset, or derivative. Markets carry risk. Past performance does not guarantee future results. You are fully responsible for your own decisions, position sizing, risk management, and compliance with all applicable laws and regulations.
VWAP & Band Cross Strategy v6VWAP & Band Cross Strategy v6: Script Summary
This Pine Script implements a highly flexible, multi-layered trading strategy centered around the Volume Weighted Average Price (VWAP) and its associated Standard Deviation Bands.
The strategy is designed to test various entry/exit models based on how the price interacts with the central VWAP line and the upper/lower volatility bands, with extensive risk management and confirmation filters.
1. Core Mechanics (VWAP & Bands)
VWAP Calculation: Calculates the VWAP based on a user-defined source (default is the close price).
Standard Deviation Bands: Creates upper and lower bands by calculating the standard deviation of the price (over 20 periods by default) and multiplying it by a user-defined Multiplier (default is 2.0). These bands dynamically expand and contract with volatility.
Plotting: The script clearly plots the VWAP (purple), the Upper Band (green), and the Lower Band (red), with a colored fill between the bands.
2. Entry Triggers
The core entry logic is based on a single, user-selected cross event between the price and the VWAP/Bands. The user can choose from six predefined entry types:
Entry Type Category
Entry Trigger (Long)
Entry Trigger (Short)
Mean Reversion
Price crosses over the Lower Band.
Price crosses under the Upper Band.
Trend Following
Price crosses over the Upper Band (Breakout).
Price crosses under the Lower Band (Breakout).
VWAP Cross
Price crosses over the VWAP.
Price crosses under the VWAP.
3. Filters and Confirmation
Trades are only executed if they pass a series of optional filters, making the strategy highly customizable:
Technical Confirmation (Optional): Users can enable and configure up to three additional indicators that must align with the trade direction:
RSI: Price must be Oversold (for Long) or Overbought (for Short).
SMMA: Price must be above the SMMA (for Long) or below (for Short).
MACD: MACD line must cross the Signal line and the Histogram must be positive/negative.
Time and Day Filters: Trades are restricted to a defined Entry Start/End Hour/Minute window, and only execute on user-selected Trading Days of the week.
Trade Direction: Can be toggled to execute Long Only, Short Only, or Both.
4. Advanced Risk Management (Daily Limits)
The strategy incorporates robust daily limits that reset at a configured Daily Reset Hour/Minute:
Daily Profit/Loss Limits: If the running total of Realized PnL (closed trades) + Unrealized PnL (open position) exceeds a user-defined Daily Take Profit (in Ticks) or falls below the Daily Stop Loss (in Ticks), the strategy locks out new trades and immediately closes any open position.
Max Daily Trades: Prevents the strategy from entering more than a specified number of trades per day.
5. Exit Logic
The strategy exit is also highly configurable via the Exit Type setting:
Fixed Ticks / ATR / Capped ATR: If one of these is selected, the script calculates a static Stop Loss and Take Profit level upon entry, using either fixed tick values or dynamic values based on the Average True Range (ATR), which are then executed using Pine Script's strategy.exit function.
Cross Exits (VWAP/Bands): If selected, the position is closed when the price crosses the VWAP or a specific band in the opposite direction.
End-of-Day Close: An unconditional exit that closes all open positions at a user-defined Close All Hour/Minute, regardless of profit/loss or limit status, preventing positions from being held overnight.
Twisted Forex's Doji + Area StrategyTitle
Twisted Forex’s Doji + Area Strategy
Description
What this strategy does
This strategy looks for doji candles forming inside or near supply/demand areas . Areas are built from swing pivots and sized with ATR, then tracked for retests (“confirmations”). When a doji prints close to an area and quality checks pass, the strategy places a trade with the stop beyond the doji and a configurable R:R target.
How areas (zones) are built
• Swings are detected with a user-set pivot length.
• Each swing spawns a horizontal area centered at the pivot price with half-height = zoneHalfATR × ATR .
• Duplicates are de-duplicated by center distance (ATR-scaled).
• Areas fade when broken beyond a buffer or after an optional age (expiry).
• Retests are recorded when price touches and then bounces away from the area; repeated reactions increase the zone’s “strength”.
Signal logic (summary)
Doji detection: strict or loose body criteria with optional minimum wick fractions and ATR-scaled minimum range.
Proximity: price must be inside/near a supply or demand area (proxATR × ATR).
Side resolution: overlap is resolved by (a) which side price penetrates more, (b) fast/slow EMA trend, or (c) nearest distance. Optional “previous candle flip” can bias long after a bearish candle and short after a bullish one.
Optional 1-bar confirmation: the bar after the doji must close away from the area by confirmATR × ATR .
Quality filter (Off/Soft/Strict): four checks—(i) wick rejection past the edge, (ii) doji closes in an edge “band” of the area, (iii) fresh touch (cooldown), (iv) approach impulse over a short lookback. In Strict , thresholds auto-tighten.
Orders & exits
• Long: stop below doji low minus buffer; Short: above doji high plus buffer.
• Target = rrMultiple × risk distance .
• Pyramiding is off by default.
Position sizing
You can size from the script or from Strategy Properties:
• Script-driven (default): set Position sizing = “Risk % of equity” and choose riskPercent (e.g., 1.0%). The script applies safe floors/rounding (FX micro-lots by default) so quantity never rounds to zero.
• Properties-driven : toggle Use TV Properties → Order size ON, then pick “Percent of equity” in Properties (e.g., 1%). The header includes safe defaults so trades still place.
Key inputs to explore
• Zone building : pivotLen, zoneHalfATR, minDepartureATR, expiryBars, breakATR, leftBars, dedupeATR.
• Doji & proximity : strictDoji, dojiBodyFrac, minWickFrac, minRangeATR, proxATR, minBarsBetween.
• Overlap resolution : usePenetration, useTrend (EMA 21/55), “previous candle flip”, needNextBarConf & confirmATR.
• Quality : qualityMode (Off/Soft/Strict), minQualPass/kStrict, wickPenATR, edgeBandFrac, approachLookback, approachMinATR, freshTouchBars.
• Zone strength gating : minStrengthSoft / minStrengthStrict.
• HTF confluence (optional) : useHTFTrend (HTF EMA 34/89) and/or useHTFZoneProx (HTF swing bands).
Tips to make it cleaner / higher quality
• Turn needNextBarConf ON and use confirmATR = 0.10–0.15 .
• Increase approachMinATR (e.g., 0.35–0.45) to require a stronger pre-touch impulse.
• Raise minStrengthSoft/Strict (e.g., 4–6) so only well-reacted zones can signal.
• Use signalsOnlyConfirmed ON if you prefer trades only from zones with retests (the script falls back gracefully when none exist yet).
• Nudge proxATR to 0.5–0.6 to demand tighter proximity to the level.
• Optional: enable useHTFTrend to filter counter-trend setups.
Default settings used in this publication
• Initial capital: 100,000 (illustrative).
• Slippage: 1 tick; Commission: 0% (you can raise commission if you prefer—spread is partly modeled by slippage).
• Sizing: Risk % of equity via inputs; riskPercent = 1.0% ; FX uses micro-lot floors by default.
• Quality: Off by default (Soft/Strict available).
• HTF trend gate: Off by default.
Backtesting notes
For a meaningful sample size, test on liquid symbols/timeframes that yield 100+ trades (e.g., majors on 5–15m over 1–2 years). Backtests are modelled and broker costs/spread vary—validate on your feed and forward-test.
How to read the chart
Shaded bands are supply (above) and demand (below). Brighter bands are the nearest K per side (visual aid). BUY/SELL labels mark entries; colored dots show entry/SL/TP levels. You can hide zones or unconfirmed zones for a cleaner view.
Disclaimer
This is educational material, not financial advice. Trading involves risk. Always test and size responsibly.
Dynamic Swing Anchored VWAP STRAT (Zeiierman/PineIndicators)Dynamic Swing Anchored VWAP STRATEGY — Zeiierman × PineIndicators (Pine Script v6)
A pivot-to-pivot Anchored VWAP strategy that adapts to volatility, enters long on bullish structure, and closes on bearish structure. Built for TradingView in Pine Script v6.
Full credits to zeiierman.
Repainting notice: The original indicator logic is repainting. Swing labels (HH/HL/LH/LL) are finalized after enough bars have printed, so labels do not occur in real time. It is not possible to execute at historical label points. Treat results as educational and validate with Bar Replay and paper trading before considering any discretionary use.
Concept
The script identifies swing highs/lows over a user-defined lookback ( Swing Period ). When structure flips (most recent swing low is newer than the most recent swing high, or vice versa), a new regime begins.
At each confirmed pivot, a fresh Anchored VWAP segment is started and updated bar-by-bar using an EWMA-style decay on price×volume and volume.
Responsiveness is controlled by Adaptive Price Tracking (APT) . Optionally, APT auto-adjusts with an ATR ratio so that high volatility accelerates responsiveness and low volatility smooths it.
Longs are opened/held in bullish regimes and closed when the regime turns bearish. No short positions are taken by design.
How it works (under the hood)
Swing detection: Uses ta.highestbars / ta.lowestbars over prd to update swing highs (ph) and lows (pl), plus their bar indices (phL, plL).
Regime logic: If phL > plL → bullish regime; else → bearish regime. A change in this condition triggers a re-anchor of the VWAP at the newest pivot.
Adaptive VWAP math: APT is converted to an exponential decay factor ( alphaFromAPT ), then applied to running sums of price×volume and volume, producing the current VWAP estimate.
Rendering: Each pivot-anchored VWAP segment is drawn as a polyline and color-coded by regime. Optional structure labels (HH/HL/LH/LL) annotate the swing character.
Orders: On bullish flips, strategy.entry("L") opens/maintains a long; on bearish flips, strategy.close("L") exits.
Inputs & controls
Swing Period (prd) — Higher values identify larger, slower swings; lower values catch more frequent pivots but add noise.
Adaptive Price Tracking (APT) — Governs the VWAP’s “half-life.” Smaller APT → faster/closer to price; larger APT → smoother/stabler.
Adapt APT by ATR ratio — When enabled, APT scales with volatility so the VWAP speeds up in turbulent markets and slows down in quiet markets.
Volatility Bias — Tunes the strength of APT’s response to volatility (above 1 = stronger effect; below 1 = milder).
Style settings — Colors for swing labels and VWAP segments, plus line width for visibility.
Trade logic summary
Entry: Long when the swing structure turns bullish (latest swing low is more recent than the last swing high).
Exit: Close the long when structure turns bearish.
Position size: qty = strategy.equity / close × 5 (dynamic sizing; scales with account equity and instrument price). Consider reducing the multiplier for a more conservative profile.
Recommended workflow
Apply to instruments with reliable volume (equities, futures, crypto; FX tick volume can work but varies by broker).
Start on your preferred timeframe. Intraday often benefits from smaller APT (more reactive); higher timeframes may prefer larger APT (smoother).
Begin with defaults ( prd=50, APT=20 ); then toggle “Adapt by ATR” and vary Volatility Bias to observe how segments tighten/loosen.
Use Bar Replay to watch how pivots confirm and how the strategy re-anchors VWAP at those confirmations.
Layer your own risk rules (stops/targets, max position cap, session filters) before any discretionary use.
Practical tips
Context filter: Consider combining with a higher-timeframe bias (e.g., daily trend) and using this strategy as an entry timing layer.
First pivot preference: Some traders prefer only the first bullish pivot after a bearish regime (and vice versa) to reduce whipsaw in choppy ranges.
Deviations: You can add VWAP deviation bands to pre-plan partial exits or re-entries on mean-reversion pulls.
Sessions: Session-based filters (RTH vs. ETH) can materially change behavior on futures and equities.
Extending the script (ideas)
Add stops/targets (e.g., ATR stop below last swing low; partial profits at k×VWAP deviation).
Introduce mirrored short logic for two-sided testing.
Include alert conditions for regime flips or for price-VWAP interactions.
Incorporate HTF confirmation (e.g., only long when daily VWAP slope ≥ 0).
Throttle entries (e.g., once per regime flip) to avoid over-trading in ranges.
Known limitations
Repainting: Swing labels and pivot confirmations depend on future bars; historical labels can look “perfect.” Treat them as annotations, not executable signals.
Execution realism: Strategy includes commission and slippage fields, yet actual fills differ by venue/liquidity.
No guarantees: Past behavior does not imply future results. This publication is for research/education only and not financial advice.
Defaults (backtest environment)
Initial capital: 10,000
Commission value: 0.01
Slippage: 1
Overlay: true
Max bars back: 5000; Max labels/polylines set for deep swing histories
Quick checklist
Add to chart and verify that the instrument has volume.
Use defaults, then tune APT and Volatility Bias with/without ATR adaptation.
Observe how each pivot re-anchors VWAP and how regime flips drive entries/exits.
Paper trade across several symbols/timeframes before any discretionary decisions.
Attribution & license
Original indicator concept and logic: Zeiierman — please credit the author.
Strategy wrapper and publication: PineIndicators .
License: CC BY-NC-SA 4.0 (Attribution-NonCommercial-ShareAlike). Respect the license when forking or publishing derivatives.
Golden Cross Strategy & BacktesterGolden Cross Strategy & Backtester 📈🚀
Overview
This script provides a complete backtesting environment for the classic Golden Cross trend-following strategy. It is designed to be simple, visual, and easy to use. 💪
The strategy operates on the following logic:
🔼 Long Entry: A "Buy" signal is generated when the short-term moving average (Short MA) crosses above the long-term moving average (Long MA).
🔽 Exit: The position is closed when the short-term moving average crosses back below the long-term moving average (a "Death Cross").
The background of the chart will be shaded green 🎨 during periods when the strategy is holding an active position.
How to Use for Backtesting 🔬
This is a strategy script, which means its main purpose is to test the historical performance of this trading idea.
Add this script to your chart.
Open the "Strategy Tester" panel at the bottom of your chart.
In the "Overview" and "Performance" tabs, you can see detailed results 📊, such as the Net Profit and Max Drawdown, to evaluate the strategy's effectiveness.
Customization ⚙️
You can easily customize the strategy's parameters without editing the code.
Click the Settings/Gear icon (⚙️) next to the script's name on your chart.
In the "Inputs" tab, you can change:
📏 Short MA Length: The period for the fast-moving average (default is 50).
📏 Long MA Length: The period for the slow-moving average (default is 200).
In the "Properties" tab, you can change:
💰 Initial Capital: The starting balance for the backtest.
Feel free to test different settings to find what works best for your preferred asset and timeframe! Happy testing! 🎉






















